import greenfoot.*; 
import java.util.*;
import java.lang.*;

/**
 * Write a description of class Monos here.
 * @author (José Alcántar Noyola) 
 * @version (Noviembre 2012)
 */

public class Monos extends Actor
{
   
    /**
     * Variables de instancia las cuales son:
     * noImagenes,vidas, velocidad, dineroAzul,dineroRojo
     * variables de tipo GreenfootImage
     */
     private final int noImagenes=16;
     private final int noSaltos=18;
     private final int noSaltoAzul=11;
     public int vidas=9,vidasA=9;
     
     public GreenfootImage imagenes[]=new GreenfootImage [noImagenes];
     public GreenfootImage saltos[]=new GreenfootImage [noSaltos];
     public GreenfootImage saltoAzul[]=new GreenfootImage [noSaltoAzul];
     
     public int imagen,cont=1,velocidad,dineroAzul=0,dineroRojo=0;
     /**
     * Act - do whatever the Monos wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
       cargaImagenes();
       
    }
    
    /**
    * Carga las imagenes de nuestros Heroes
    * @param No lleva
   */
    public void cargaImagenes()
    {
       int i;
       for(i=0;i<noImagenes;i++)
         imagenes[i] = new GreenfootImage("sonic_"+(i+1)+".png"); 
         
        for(i=0;i<noSaltos;i++)
         saltos[i] = new GreenfootImage("salto"+(i+1)+".png"); 
         
        for(i=0;i<noSaltoAzul;i++)
         saltoAzul[i] = new GreenfootImage("salto_azul"+(i+1)+".png"); 
    }
    
    /**Metodo en el cual compara si llega a tocar a otros objetos
      * @param cadena  recibe el nombre del objeto que puede interseccionar
      * @return true si interseccionan ambos objetos.
      */
   public boolean compara(String cadena)
   {
    List lista= getIntersectingObjects(piso.class);
   if(cadena.equals("Fuego")) 
                   lista=  getIntersectingObjects(Fuego.class);
   else
    if(cadena.equals("Agua"))
                   lista=  getIntersectingObjects(Agua.class);
   else
    if(cadena.equals("Aceite"))
                   lista=  getIntersectingObjects(Aceite.class);
    else
    if(cadena.equals("liso"))
                   lista=  getIntersectingObjects(liso.class);
    else
    if(cadena.equals("Azul"))
                   lista=  getIntersectingObjects(sonicAzul.class);  
    else
    if(cadena.equals("Rojo"))
                   lista=  getIntersectingObjects(sonicRojo.class);
    else
    if(cadena.equals("escalera"))
                   lista=  getIntersectingObjects(escalera.class);
  
   if(lista.isEmpty())
    return false;
   else
   return true;
  }
  
    /**Verifica si interseccionan con el objeto Moneda
     * @param No recibe Paramatros 
     * @return si hay interseccion
       */
    public boolean recogeMoneda()
    {
    Actor moneda= getOneIntersectingObject(Moneda.class);
 
    if(moneda!= null) 
    {
      Mundo w=(Mundo) super.getWorld();
      w.removeObject(moneda);
      GreenfootSound p=new GreenfootSound("moneda.wav");
      p.play();
      p.setVolume(80);
      return true;
    }  
    return false;
   }
  
  /**
   * Cambia la variable imagen para tener la posicion de la imagen que se quiere
   * @param No lleva
   */
     public void cambiaIzquierda()
    {
       velocidad=-10;
     
          switch(cont)
          {
            case 1:
                  imagen=5;
                  move(velocidad);
                  cont=2;
                  break;
                 
                  
            case 2:
                  imagen=6;
                  move(velocidad);
                  cont=3;
                  break;
                  
           case 3:
                  imagen=7;
                  move(velocidad);
                  cont=4;
                  break; 
            case 4:
                  imagen=8;
                  move(velocidad);
                  cont=1;
                  break;
              
          }
    }
     /**
   * Cambia la variable imagen para tener la posicion de la imagen que se quiere
   * @param No lleva
   */
     public void moverDerecha()
    {
          velocidad=10;
          switch(cont)
          {
            case 1:
                  imagen=1;
                  move(velocidad);
                  cont=2;
                  break;
                 
                  
            case 2:
                  imagen=2;
                  move(velocidad);
                  cont=3;
                  break;
                  
           case 3:
                  imagen=3;
                  move(velocidad);
                  cont=4;
                  break; 
            case 4:
                  imagen=4;
                  move(velocidad);
                  cont=1;
                  break;
              
          }
    }
    
}
